package net.sk.china.city.domain;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 志愿者审核对象 ar_user_approve
 * 
 * @author yangguanjin
 * @date 2024-04-17
 */
@Getter
@Setter
@ToString
public class ArUserApprove
{

    /** 主键 */
    private Long pkId;
    /** 志愿者申请id，用于通过或拒绝时把对应的申请置为1（有一方让其加入了队伍） */
    private Long approveId;
    /** 用户id */
    private Long userId;
    /** 加入志愿者队伍 */
    private Long teamId;
    /** 队伍名称 */
    private String teamName;
    /** 账号注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime registerDatetime;
    /** 联系电话 */
    private String phone;
    /** 真实姓名 */
    private String realName;
    /** 工作单位，用户自己填 */
    private String company;
    /** 政治身份，1 中共党员 2 中共预备党员 3 共青团员 4 群众 */
    private Integer politicalIdentityId;
    /** 加入志愿说明 */
    private String joinDescription;
    /** 联系地址 */
    private String contactAddress;
    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthDate;
    /** 性别,0:男,1:女,2:未知 */
    private Integer sex;
    /** 特长，掌握的(生活)技能 */
    private String forte;
    /** 0:审核中,1:审核通过,2:审核未通过 */
    private Integer status;
    /** 隔离字段 */
    private String platformId;




    public User toUser() {
        User user = new User();
        user.setPkId(userId);
        user.setPhone(phone);
        user.setRealName(realName);
        // 设置角色为志愿者
        user.setRole(1);
        user.setRegisterDatetime(registerDatetime);
        user.setJoinDatetime(LocalDateTime.now());
        user.setCompany(company);
        user.setPoliticalIdentityId(politicalIdentityId);
        user.setJoinDescription(joinDescription);
        user.setContactAddress(contactAddress);
        // 设置积分为0
        user.setPoint(new BigDecimal(0));
        user.setWorkHours(new BigDecimal(0));
        user.setBirthDate(birthDate);
        user.setSex(sex);
        user.setForte(forte);
        return user;
    }
}
